package com.zline.foodraise.alipay;

import android.app.Activity;
import android.text.TextUtils;

import com.alipay.sdk.app.PayTask;
import com.zline.foodraise.http.HttpDataParsing;
import com.zline.foodraise.util.LUtil;

import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EBean;
import org.androidannotations.annotations.UiThread;
import org.json.JSONObject;

/**
 * Created by heshantao on 15/8/12.
 * 支付宝支付
 */
@EBean
public class AlipayUtil {
    private static final String LOG_TAG = AlipayUtil.class.getSimpleName();
    @Bean
    HttpDataParsing httpDataParsing;
    @Background
    public void pay(JSONObject jsonObject, Activity activity) {
        String payInfo = httpDataParsing.getAliPayInfo(jsonObject);
        LUtil.i(LOG_TAG, "_________支付信息________" + payInfo);
        PayTask payTask = new PayTask(activity);
        String result = payTask.pay(payInfo);
        showResult(result);
    }


    @UiThread
    void showResult(String result) {
        PayResult payResult = new PayResult(result);

        // 支付宝返回此次支付结果及加签，建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
        String resultInfo = payResult.getResult();
        String resultStatus = payResult.getResultStatus();

        // 判断resultStatus 为“9000”则代表支付成功，具体状态码代表含义可参考接口文档
        if (TextUtils.equals(resultStatus, "9000")) {//支付成功

        } else {
            // 判断resultStatus 为非“9000”则代表可能支付失败
            // “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认，最终交易是否成功以服务端异步通知为准（小概率状态）
            if (TextUtils.equals(resultStatus, "8000")) {


            } else {
                // 其他值就可以判断为支付失败，包括用户主动取消支付，或者系统返回的错误
            }
        }
    }
}
